package com.tom.architect02.p4.day43;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import com.tom.architect02.R;

public class MainActivity43 extends AppCompatActivity {

    Handler handler = new Handler() { // 内部引用内部对象，默认情况下，会持有外部对象的引用。
        @Override
        public void handleMessage(@NonNull Message msg) {
            test(); // 持有Activity的引用。所以才能调用test方法。
        }
    };

    public void test() {
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main43);

        // Thread 应用handler，handler又持有Activity。
        new Thread() {
            @Override
            public void run() {
                super.run();
                handler.sendEmptyMessage(0);
            }
        }.start();
    }


}